package work.month05.day27;

/**
 * @Date 2020/05/27
 * @author 王光浩
 * @Introduction 该类 extends Machine 抽象类，并且实现了各个接口中的方法
 */
public class Aircraft extends Machine implements Flyable,Roadable,Voyageable{

	/**
	 * 调用父类构造，指定 Aircraft 的初始能量为 100
	 * 
	 * @param energy
	 */
	public Aircraft() {
		super(100);
	}

	/**
	 * 实现 Flyable 接口中的方法，每飞行一次，能量减少 25
	 */
	@Override
	public void fly() {
		this.setterEnergy(25);
	}
	
	/**
	 * 实现 Voyageable 接口中的方法，每水中航行一次，能量减少 15
	 */
	@Override
	public void voyage() {
		this.setEnergy(15);
	}
	
	/**
	 * 实现 Roadable 接口，每奔跑一次，能量减少 10
	 */
	@Override  
	public void run() {
		this.setEnergy(10);
	}
	
	private void setEnergy(int val) {
		if(this.getterEnergy() >= val)
			this.setterEnergy(this.getterEnergy() - val);
	}
}
